/**
 * 文件名：****.java
 * 版权：Copyright Lightkit All Rights Reserved.
 * 描述：*****
 */
package com.lightkits.wms.domain.tagservice;


import com.lightkits.common.db.entity.BdTag;
import com.lightkits.common.db.entity.BdTagHistory;
import com.lightkits.common.db.entity.BdTagThing;
import com.lightkits.common.db.entity.BdTagThingHistory;
import com.lightkits.framework.common.model.CheckResult;
import com.lightkits.wms.domain.tagservice.model.TagDTO;
import com.lightkits.wms.dto.tagservice.model.CancelTagDto;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * CreateTagParamsService
 *
 * @author jing.wei@hand-china.com
 * Created on 2019/5/22 17:35
 */
@Component
public interface CreateTagParamsService {

    /**
     * 创建条码
     *
     * @param dtos 条码参数
     * @return BdTag
     **/
    List<BdTag> createBdTag(List<TagDTO> dtos);

    /**
     * 创建条码历史纪录
     *
     * @param dtos 条码参数
     * @param tags 条码
     * @return BdTagHistory
     **/
    CheckResult<List<BdTagHistory>> createBdTagHistory(List<TagDTO> dtos, List<BdTag> tags);

    /**
     * 创建条码历史纪录
     *
     * @param dtos 条码
     * @param tags 取消条码参数
     * @return BdTagHistory
     */
    CheckResult<List<BdTagHistory>> createCanBdTagHistory(List<BdTag> dtos, List<CancelTagDto> tags);

    /**
     * 创建实物条码
     *
     * @param dtos 条码参数
     * @param tags 条码
     * @return BdTagThing
     */
    CheckResult<List<BdTagThing>> createBdTagThing(List<TagDTO> dtos, List<BdTag> tags);

    /**
     * 创建实物条码历史记录
     *
     * @param dtos      条码参数
     * @param tagThings 实物条码参数
     * @param tags      条码
     * @return BdTagThingHistory
     */
    CheckResult<List<BdTagThingHistory>> createBdTagThingHistory(List<TagDTO> dtos,
                                                                 List<BdTagThing> tagThings,
                                                                 List<BdTag> tags);
}
